Matthias Clasen [Fri, 19 Jan 2018 15:02:42 +0000 (16:02 +0100)]
Add a test for ::row-changed vs node refs
Test that filter models propagate ::row-changed if there is
an external reference on the node, and not otherwise. This
is showing up in buggy icon view behaviour, where the icon
view is not redrawing if the content changes in a model that
is below a filter model.
Carlos Garnacho [Fri, 19 Jan 2018 17:47:21 +0000 (18:47 +0100)]
gtkwindow: Disconnect GdkSeat::device-removed callback on finalize
Otherwise dangling callbacks may lead to crashes.
Timm Bäder [Fri, 19 Jan 2018 14:00:22 +0000 (15:00 +0100)]
gl renderer: Fix shadow node child offset
We shouldn't apply the shadow offset when drawing the child offscreen,
instead apply it afterwards when we draw it to the current render
target.
Timm Bäder [Fri, 19 Jan 2018 13:59:31 +0000 (14:59 +0100)]
testsuite: Add another gl renderer test case
Timm Bäder [Fri, 19 Jan 2018 12:21:41 +0000 (13:21 +0100)]
linkbutton: Only set widget cursor once
Timm Bäder [Fri, 19 Jan 2018 09:16:15 +0000 (10:16 +0100)]
inspector: Allow picking insensitive widgets
The default gtk_widget_contains/gtk_widget_pick don't consider
insensitive widgets.
Timm Bäder [Fri, 19 Jan 2018 08:57:49 +0000 (09:57 +0100)]
csswidgetnode: Avoid some unnecessary work
The later code would just ref both styles and not do anything else.
Timm Bäder [Fri, 19 Jan 2018 08:53:39 +0000 (09:53 +0100)]
widget-factory: Fix some layout issues
We have to explicitly set some of these to their default values so
expand-set is TRUE and the boxes stop propagating their expansion state
up the hierarchy.
Timm Bäder [Thu, 18 Jan 2018 20:54:03 +0000 (21:54 +0100)]
textview: Remove some stray debugging output
Leftover from
7046463b880c79b227594a2b35a6c625119d286e
Matthias Clasen [Thu, 18 Jan 2018 22:46:58 +0000 (17:46 -0500)]
Simplify all ui files again
Now even simpler!
Matthias Clasen [Thu, 18 Jan 2018 22:45:12 +0000 (17:45 -0500)]
builder-tool: Try harder to find types
If g_type_from_name fails, try gtk_builder_get_type_from_name
before giving up. This fixes cases like GtkPrinterOptionWidget.
Timm Bäder [Thu, 18 Jan 2018 14:10:49 +0000 (15:10 +0100)]
window: Ignore gtk_window_close calls from close-request handlers
Timm Bäder [Thu, 18 Jan 2018 13:43:36 +0000 (14:43 +0100)]
widget: Always assign values to out parameter in translate_coordinates
safe guard against people using the returned coordinate values without
checking the return value of gtk_widget_translate_coordinates.
Timm Bäder [Thu, 18 Jan 2018 13:42:39 +0000 (14:42 +0100)]
widget: Initialize a local variable
We will later pass this variable on to some other functions, so be safe
against them using the value.
Timm Bäder [Thu, 18 Jan 2018 13:38:27 +0000 (14:38 +0100)]
aboutdialog: Only close on delete events
Clicking on the Credits button should not close the dialog.
Timm Bäder [Thu, 18 Jan 2018 08:40:19 +0000 (09:40 +0100)]
fontchooswerwidget: Center spinbutton next to scales vertically
Timm Bäder [Thu, 18 Jan 2018 07:21:11 +0000 (08:21 +0100)]
gl renderer: Render GL textures upside down
These come from an FBO so we need to flip the texture coords on the y
axis, just like we do everywhere else.
Matthias Clasen [Thu, 18 Jan 2018 04:49:17 +0000 (23:49 -0500)]
Revert "inspector: Stop adding event controllers to the object tree"
This reverts commit
8f3cb2658a79d20912b6f2ec96bc7e6bbdaeb067.
This didn't quite work out, since being in the object tree is
a prerequisite for showing up in the property editor.
Matthias Clasen [Thu, 18 Jan 2018 02:45:08 +0000 (21:45 -0500)]
Document new texture api
Matthias Clasen [Thu, 18 Jan 2018 01:19:19 +0000 (20:19 -0500)]
Use the new api to release resources
When we unrealize a GL area with outstanding textures,
call gdk_texture_release_gl on them to avoid later crashes.
Matthias Clasen [Thu, 18 Jan 2018 01:15:45 +0000 (20:15 -0500)]
Add a way to release GL resources
The inspector may hold on to render nodes and textures
beyond the lifetime of the widget (and thus the GL
resources). To handle this situation, allow the widget
to explicitly release the GL resources, and make
the texture available on the clent-side as a cairo
surface. This lets the recorder still show the content
after the widget is gone.
Matthias Clasen [Thu, 18 Jan 2018 00:49:52 +0000 (19:49 -0500)]
glarea: Drop the dispose vfunc
This was causing us to leak, in the following scenario:
1) gtk_widget_destroy is called on a GL area
2) dispose is run and clears the context
3) the GL area is unrealized, but the context is already cleared,
so we leak all the GL buffers
Matthias Clasen [Thu, 18 Jan 2018 00:49:05 +0000 (19:49 -0500)]
glarea: Always delete textures on unrealize
We need to make the context current for deleting
textures as well, so just do it unconditionally.
Matthias Clasen [Thu, 18 Jan 2018 00:48:33 +0000 (19:48 -0500)]
glarea: Avoid a crash
We must only delete the texture if it is not NULL.
Matthias Clasen [Thu, 18 Jan 2018 00:47:45 +0000 (19:47 -0500)]
gdkgears: add a way to remove gears
This is needed to test the GL resource cleanup
code paths.
Matthias Clasen [Thu, 18 Jan 2018 00:15:14 +0000 (19:15 -0500)]
glarea: Add a pool for GL textures
Handle the situation that a GL texture might remain
in use (e.g. by a slow frame, or by the recorder)
In that case, we can't modify it but must use a
new one. Keep a pool of GL textures for this eventuality.
Matthias Clasen [Thu, 18 Jan 2018 00:12:27 +0000 (19:12 -0500)]
inspector: Don't leak recordings
g_list_model_get_item is transfer full, so we need
to drop the references we get from it. This was showing
up while testing the GL texture cache in GtkGLArea.
Timm Bäder [Wed, 17 Jan 2018 20:47:05 +0000 (21:47 +0100)]
rendernodeimpl: Fix a crash
We may get a NULL renderer here.
Timm Bäder [Wed, 17 Jan 2018 15:02:28 +0000 (16:02 +0100)]
applicationwindow: Fix measure implementation
Really calculate the menubar height, not the width.
Timm Bäder [Wed, 17 Jan 2018 14:42:01 +0000 (15:42 +0100)]
sizerequest: Fix for_size adjustment
We need to pull the proper size from the size request cache and adjust
it accordingly.
Timm Bäder [Wed, 17 Jan 2018 12:11:32 +0000 (13:11 +0100)]
box: Simplify some code
All out varibles in measure implementations must be non-null and -1 is
the default value for the baseline parameters.
Timm Bäder [Wed, 17 Jan 2018 12:02:58 +0000 (13:02 +0100)]
box: Remove self assignment
Timm Bäder [Wed, 17 Jan 2018 11:54:42 +0000 (12:54 +0100)]
box: Remove useless if statement
We already check right before this one whether child->pack != packing
and if so, we continue to the next iteration. So, no need to check again
whether the inverted condition child->pack == packing is true, because
it is.
Timm Bäder [Wed, 17 Jan 2018 11:36:37 +0000 (12:36 +0100)]
label: Update layout width directly form allocation
For the one update_layout_width call in size_allocate, we can just use
the passed-in allocation width instead of a separate (relatively slow)
gtk_widget_get_width call.
Timm Bäder [Tue, 16 Jan 2018 19:25:02 +0000 (20:25 +0100)]
widget: Clip redrawn area to widget clip
The clip can already be modified in size_allocate, so we never want a
widget to invalidate more than its actual clip region.
Timm Bäder [Tue, 16 Jan 2018 17:47:52 +0000 (18:47 +0100)]
box: Remove some unneeded checks
We only call this function from the measure implementation and we should
never get NULL pointers there.
Timm Bäder [Tue, 16 Jan 2018 16:50:11 +0000 (17:50 +0100)]
box: Remove an unnecessary local variable
Timm Bäder [Tue, 16 Jan 2018 16:44:46 +0000 (17:44 +0100)]
box: Use GtkWidget's widget list in get_size
Timm Bäder [Tue, 16 Jan 2018 14:12:24 +0000 (15:12 +0100)]
listbox: Don't assume that row child == focus widget
With widgets supporting child widgets and custom GtkListBoxRow
subclasses, this might not be true.
Timm Bäder [Tue, 16 Jan 2018 13:50:50 +0000 (14:50 +0100)]
widget: Remove reparent special case
Since gtk_widget_reparent doesn't exist anymore, we can also remove this
special case.
Timm Bäder [Mon, 15 Jan 2018 21:07:29 +0000 (22:07 +0100)]
container: Remove some unused includes
Timm Bäder [Mon, 15 Jan 2018 20:58:36 +0000 (21:58 +0100)]
viewport: Remove some unused includes
Matthias Clasen [Wed, 17 Jan 2018 19:43:50 +0000 (14:43 -0500)]
gl area: Avoid trivialities
If we have zero pixels, no need to snapshot anything,
and produce GL errors while doing so.
Matthias Clasen [Wed, 17 Jan 2018 19:39:46 +0000 (14:39 -0500)]
gtk-demo: Add gears to the bowl
Just for fun.
Matthias Clasen [Wed, 17 Jan 2018 14:22:01 +0000 (09:22 -0500)]
Drop GtkGLArea::has-alpha
We now always behave as if has-alpha is TRUE.
Update all callers.
Matthias Clasen [Wed, 17 Jan 2018 12:25:51 +0000 (07:25 -0500)]
Convert gtkglarea to use snapshots
Just append a texture node.
Note that this is not 100% done yet. The GL area really
needs to keep a pool of textures, and only reuse them
once the GdkTexture object is gone.
Matthias Clasen [Wed, 17 Jan 2018 05:52:15 +0000 (00:52 -0500)]
gsk: Handle GL textures
These textures already have a GL texture in them,
no need to create a new one.
Matthias Clasen [Wed, 17 Jan 2018 05:32:26 +0000 (00:32 -0500)]
gdk: Add a gl texture implementation
This will be used to pass a GL textures from the application
(or rather, GtkGLArea) down to the GSK GL renderer.
Matthias Clasen [Wed, 17 Jan 2018 04:33:40 +0000 (23:33 -0500)]
Drop removed api from the docs
This should have been part of the previous commit.
Matthias Clasen [Wed, 17 Jan 2018 04:22:41 +0000 (23:22 -0500)]
gdk: Drop some unused cursor apis
The query function for cursor sizes and capabilities
are not very interesting. At least, they are not used
in GTK+, and all backends but X11 just hardcode
made-up values anyway. So, lets drop them.
Matthias Clasen [Wed, 17 Jan 2018 04:21:32 +0000 (23:21 -0500)]
inspector: Stop using gdk_display_get_default_cursor_size
If the cursor theme size setting has no value, just hardcode 32.
Also, allow ridiculously large cursors, just for fun.
Matthias Clasen [Wed, 17 Jan 2018 04:20:12 +0000 (23:20 -0500)]
tooltip: Stop using gdk_display_get_default_cursor_size
It makes more sense to use the actual cursor theme size here.
Matthias Clasen [Wed, 17 Jan 2018 04:25:12 +0000 (23:25 -0500)]
testgtk: Stop using gdk_display_get_maximal_cursor_size
This function is going away. Just make a reasonable assumption
that cursor sizes up to 128 are supported.
Chris Lamb [Fri, 25 Aug 2017 15:24:38 +0000 (16:24 +0100)]
gtk/queryimmodules.c: Make the output deterministic.
Whilst working on the Reproducible Builds effort [0], we noticed that
queryimmodules generates non-reproducible output as it iterates over the
filesystem without sorting.
Patch attached.
[0] https://reproducible-builds.org/
Signed-off-by: Chris Lamb <lamby@debian.org>
https://bugzilla.gnome.org/show_bug.cgi?id=786528
Matthias Clasen [Tue, 16 Jan 2018 23:16:21 +0000 (18:16 -0500)]
tree model sort: Fix set_sort_column
We were failing to change the sort order for the
default sort column in some cases. Fix that, and
add a testcase for this issue.
https://bugzilla.gnome.org/show_bug.cgi?id=792459
Add a testcase for the previous fix
Matthias Clasen [Tue, 16 Jan 2018 23:15:13 +0000 (18:15 -0500)]
tree model sort: Fix initial default sort func
gtk_tree_sortable_has_default_sort_func should return
FALSE initially.
Matthias Clasen [Tue, 16 Jan 2018 20:42:28 +0000 (15:42 -0500)]
Fix the icontheme test
We rely on log messages here. Since logging is per-display
now, we need to set a display on our custom icontheme object
to get the expected log messages.
Matthias Clasen [Tue, 16 Jan 2018 19:50:25 +0000 (14:50 -0500)]
mountoperation: Fix a crash
We only create the gesture when the dialog is needed,
so don't free it unconditionally.
Matthias Clasen [Tue, 16 Jan 2018 19:13:20 +0000 (14:13 -0500)]
Drop ::button-press/release event
We are no longer using these, and there are several gestures
that can be used instead. If you need to catch raw button events,
use the ::event signal.
Matthias Clasen [Tue, 16 Jan 2018 18:57:50 +0000 (13:57 -0500)]
popover: Stop using ::button-press/release-event
Just use a generic ::event handler.
Matthias Clasen [Tue, 16 Jan 2018 18:52:40 +0000 (13:52 -0500)]
menushell: Stop using ::button-press/release-event
Merge the handlers into the existing handler for ::event.
Matthias Clasen [Tue, 16 Jan 2018 18:41:29 +0000 (13:41 -0500)]
menu: Remove stray references to 'button_press'
No code change, but this string was still used in
docs and comments.
Matthias Clasen [Tue, 16 Jan 2018 05:15:22 +0000 (00:15 -0500)]
places sidebar: Stop using ::button-press/release-event
We'll use a generic ::event signal instead.
Matthias Clasen [Tue, 16 Jan 2018 05:04:05 +0000 (00:04 -0500)]
gtk-demo: Stop using ::button-release-event
Matthias Clasen [Tue, 16 Jan 2018 04:57:57 +0000 (23:57 -0500)]
tests: Stop using ::button-press/release-event
The generic ::event signal works fine here.
Matthias Clasen [Tue, 16 Jan 2018 04:56:14 +0000 (23:56 -0500)]
testsuite: Stop using ::button-press-event
We can use the generic ::event signal instead.
Matthias Clasen [Tue, 16 Jan 2018 04:53:45 +0000 (23:53 -0500)]
tests: Stop using ::button-press-event
A gesture will do here.
Matthias Clasen [Tue, 16 Jan 2018 04:47:33 +0000 (23:47 -0500)]
Drop ::motion-notify-event
We no longer emit this signal. You can use various gestures
and event controllers instead. If you need to catch raw
motion events, use the generic ::event signal.
Matthias Clasen [Tue, 16 Jan 2018 04:34:13 +0000 (23:34 -0500)]
places sidebar: Stop using ::motion-notify-event
We can use the generic ::event signal here.
Matthias Clasen [Tue, 16 Jan 2018 04:26:44 +0000 (23:26 -0500)]
docs: Stop referring to specific event signals
These are going away.
Matthias Clasen [Tue, 16 Jan 2018 04:24:50 +0000 (23:24 -0500)]
gtk-demo: Stop using ::motion-notify-event in the hypertext demo
We already have a generic ::event handler, just use it for this.
Matthias Clasen [Tue, 16 Jan 2018 04:15:51 +0000 (23:15 -0500)]
tests: Stop using ::motion-notify-event
We can use the generic ::event signal here.
Matthias Clasen [Tue, 16 Jan 2018 03:52:00 +0000 (22:52 -0500)]
treeview: Stop using ::button-press-event
We can just use a gesture here.
Matthias Clasen [Tue, 16 Jan 2018 01:02:55 +0000 (20:02 -0500)]
recent chooser: Stop using ::button-press-event
We can just use a multipress gesture here.
Matthias Clasen [Mon, 15 Jan 2018 21:43:54 +0000 (16:43 -0500)]
mount operation: Stop using ::button-press-event
A multipress gesture does just fine here.
Matthias Clasen [Mon, 15 Jan 2018 02:53:22 +0000 (21:53 -0500)]
testinput: Port to a drag gesture
This replaces both button-press-event and motion-notify-event
handlers.
Matthias Clasen [Thu, 11 Jan 2018 00:02:23 +0000 (19:02 -0500)]
entry completion: Drop another ::button-press-event handler
This one will be replaced by a generic ::event handler.
Matthias Clasen [Wed, 10 Jan 2018 23:52:39 +0000 (18:52 -0500)]
docs: Stop referring to legacy event signals
These are going away.
Matthias Clasen [Wed, 10 Jan 2018 23:51:01 +0000 (18:51 -0500)]
entry completion: Stop using ::button-press-event
Just use the existing ::row-activated signal on the treeviews.
Matthias Clasen [Wed, 10 Jan 2018 23:38:00 +0000 (18:38 -0500)]
gtk-demo: Stop using ::button-press-event
Use gestures instead.
Matthias Clasen [Wed, 10 Jan 2018 23:30:13 +0000 (18:30 -0500)]
testgtk: Stop using ::button-press-event
This one example can just as well use a gesture.
Matthias Clasen [Mon, 8 Jan 2018 01:40:11 +0000 (20:40 -0500)]
places view: Stop using ::button-press-event
Instead, use a multi-press gesture in the row widget,
and emit ::popup-menu from there.
Matthias Clasen [Mon, 8 Jan 2018 00:33:27 +0000 (19:33 -0500)]
file chooser: Use a multipress gesture
This replaces the use of ::button-press-event. There's two
issues with this commit:
1) We don't have a good way to do the equivalent of
gdk_event_triggers_context_menu with gestures
2) We have to defer to and idle to avoid ordering
issues with the treeviews own gestures
Matthias Clasen [Sun, 7 Jan 2018 17:54:06 +0000 (12:54 -0500)]
Revert "file chooser: Allow activating without double-click"
This reverts commit
fb0a13b7f070a14312dafa1e4df6ba03cf33be01.
It is getting in the way of gesture conversion, and didn't
really make anybody happy anyway.
Matthias Clasen [Sun, 7 Jan 2018 16:25:55 +0000 (11:25 -0500)]
app chooser: Use a gesture
Instead of connecting to ::button-press-event, use
a multipress gesture here.
Matthias Clasen [Sun, 7 Jan 2018 15:45:07 +0000 (10:45 -0500)]
Remove a leftover icon-size property
This made the 'style classes' demo crash.
Matthias Clasen [Sat, 6 Jan 2018 23:18:38 +0000 (18:18 -0500)]
Drop ::focus-in/out-event
These signals are no longer used in GTK+.
If you need to catch focus events, use the ::event signal.
Matthias Clasen [Sat, 6 Jan 2018 23:10:11 +0000 (18:10 -0500)]
treeview: Stop using ::focus-out-event
We can just use the generic ::event signal.
Matthias Clasen [Sat, 6 Jan 2018 23:04:24 +0000 (18:04 -0500)]
file chooser entry: Stop using ::focus-out-event
Just use the generic ::event signal.
Matthias Clasen [Sat, 6 Jan 2018 22:53:20 +0000 (17:53 -0500)]
spin button: Stop using ::focus-out-event
Just use the generic ::event signal.
Matthias Clasen [Sat, 6 Jan 2018 22:52:56 +0000 (17:52 -0500)]
calendar: Stop using ::focus-out-event
Use the generic ::event signal.
Matthias Clasen [Sat, 6 Jan 2018 20:35:54 +0000 (15:35 -0500)]
color editor: stop using ::focus-out-event
Again, the has-focus property is sufficient.
Matthias Clasen [Sat, 6 Jan 2018 20:12:04 +0000 (15:12 -0500)]
text cell renderer: Stop using ::focus-out-event
The has-focus property works fine here.
Matthias Clasen [Sat, 6 Jan 2018 20:09:26 +0000 (15:09 -0500)]
spin cell renderer: Stop using ::focus-out-event
The has-focus property works fine here.
Matthias Clasen [Sat, 6 Jan 2018 20:06:12 +0000 (15:06 -0500)]
combo cell renderer: Stop using ::focus-out-event
The has-focus property works fine here.
Matthias Clasen [Sat, 6 Jan 2018 17:29:29 +0000 (12:29 -0500)]
tests: Stop using ::focus-in/out-event
The has-focus property works just as well here.
Matthias Clasen [Sat, 6 Jan 2018 17:21:31 +0000 (12:21 -0500)]
popover: Stop using ::focus-in/out-event
We can use the is-active property of the window instead.
Matthias Clasen [Sat, 6 Jan 2018 17:11:40 +0000 (12:11 -0500)]
application: Stop using ::focus-in-event
We are really interested in the active window, so use
that property directly.
Matthias Clasen [Sat, 6 Jan 2018 17:51:33 +0000 (12:51 -0500)]
window: Stop using ::focus-in/out-event
We can just use the generic ::event.
Matthias Clasen [Sat, 6 Jan 2018 17:41:02 +0000 (12:41 -0500)]
text view: Stop using ::focus-in/out-event
We can just use the generic ::event here.